package code06_数组;

import java.util.Arrays;

public class 练习1_数组 {
	public static void main(String[] args) {
		int[] nums = { 8, 4, 2, 1, 23, 344, 12 };

		/*
		 * 1.计算数组中所有元素的和
		 */
		int sum = 0;
		for (int num : nums) {
			sum += num;
		}
		System.out.println("总和为：" + sum);

		/*
		 * 2.输出数组中的最大值和最小值
		 */
		// 假设第一个元素为最大值和最小值
		int max = nums[0];
		int min = nums[0];
		for (int n : nums) {
			if (n > max) {
				max = n;
			}
			if (n < min) {
				min = n;
			}
		}
		System.out.println("最大值：" + max);
		System.out.println("最小值：" + min);

		/*
		 * 3.将最大值和第一个元素交换，最小值和最后一个元素交换（其他元素位置不动）
		 */
		// 假设第一个元素为最大值和最小值所在的索引位置
		int maxIndex = 0;
		int minIndex = 0;
		// 第一步，先找到最大值和最小值所在的真实位置
		for (int i = 0; i < nums.length; i++) {
			if (nums[i] > nums[maxIndex]) {
				maxIndex = i;
			}
			if (nums[i] < nums[minIndex]) {
				minIndex = i;
			}
		}
		// 第二步，交换元素 nums[maxIndex]、nums[0]
		int temp = nums[maxIndex];
		nums[maxIndex] = nums[0];
		nums[0] = temp;
		// nums[minIndex]、nums[nums.length-1]
		temp = nums[minIndex];
		nums[minIndex] = nums[nums.length-1];
		nums[nums.length-1] = temp;
		
		System.out.println(Arrays.toString(nums));
		
	}
}
